/**
 * 路由模块  处理路由
 * 根据不同的方法设置路由
 */

var fs= require('fs')
var Student = require('./student')


// Express 提供了一种更好的方式  专门用阿里包装路由的

var express = require('express')
//1.创建一个路由容器
var router = express.Router()

    router.get('/students',function (req,res) {
        //readFile的第二个参数是可选的  传入utf-8就是告诉它把读取到的文件按照utf-8编码转成我们
        //能认识的字符， 除了这样以外，也可以通过data.tostring()的方式
        // fs.readFile('./db.json','utf-8',function (err,data) {
        //     if(err){
        //         return res.start(500).send('Server error')
        //     }
        //     res.render('index.html',{
        //         fruits:[
        //             '苹果',
        //             '香蕉',
        //             '橘子'
        //         ],
        //         students: JSON.parse(data).students
        //     })
        // })

        Student.find(function (err,students) {
            if(err){
                return res.status(500).send('Server error')
            }
            res.render('index.html',{
                        fruits:[
                            '苹果',
                            '香蕉',
                            '橘子'
                        ],
                        students:students
                    })
        })
    })


    router.get('/students/new',function (req,res) {
        res.render('new.html')
    })

    router.post('/students/new',function (req,res) {
        //1.获取表单数据
        //2.处理
        //3.发送响应
        // console.log(req.body)
        // 先读取出了来 转出对象
        // 然后把对象转为字符串
        // 然后把字符串再次写入文件
        // var student = req.body
        // Student.save(student)
        Student.save(req.body,function (err) {
            if(err){
                return res.status(500).send('Server error')
            }
            res.redirect('/students')
        })
    })

    router.get('/students/edit',function (req,res) {

        Student.findById(parseInt(req.query.id),function (err,student) {
            if(err){
                return res.status(500).send('Server error')
            }
            res.render('edit.html',{
                student:student
            })
        })
    })

    router.post('/students/edit',function (req,res) {

        // console.log(req.body)

        Student.updateById(req.body,function (err) {
            if(err){
                return res.status(500).send('Server error')
            }
            res.redirect('/students')
        })
    })

    router.get('/students/delete',function (req,res) {
        console.log(req.query.id)
       Student.deleteById(req.query.id,function (err) {
           if(err){
               return res.status(500).send('Server error')
           }
           res.redirect('/students')
       })

    })
// 3.把Routere导出
module.exports = router


//这样也不方便  express提供了一种更好的方式
// module.exports =function (app) {
//     app.get('/students',function (req,res) {
//         //readFile的第二个参数是可选的  传入utf-8就是告诉它把读取到的文件按照utf-8编码转成我们
//         //能认识的字符， 除了这样以外，也可以通过data.tostring()的方式
//         fs.readFile('./db.json','utf-8',function (err,data) {
//             if(err){
//                 return res.start(500).send('Server error')
//             }
//             console.log(data)
//             console.log(JSON.parse(data))
//             res.render('index.html',{
//                 fruits:[
//                     '苹果',
//                     '香蕉',
//                     '橘子'
//                 ],
//                 students: JSON.parse(data).students
//             })
//         })
//     })
//
//     app.get('/students',function (req,res) {
//
//     })
//
//     app.get('/students',function (req,res) {
//
//     })
//
//     app.get('/students',function (req,res) {
//
//     })
//
//     app.get('/students',function (req,res) {
//
//     })
//
//     app.get('/students',function (req,res) {
//
//     })
//
//     app.get('/students',function (req,res) {
//
//     })
// }